Utilisateur:JrEvans/Art ANSIDes séquences d'échappement ANSI

Une page de Wikipédia, l'encyclopédie libre.

Modèle:Use dmy dates

Des séquences d'échappement ANSI standard pour en bande de signalisation pour le contrôle de la position du curseur, la couleur et d'autres options sur la vidéo terminaux texte. Certaines séquences d'octets, la plupart de départ avec Esc et '[', sont intégrées dans le texte, qui le terminal de recherche et les interprète comme des commandes, pas comme les codes de caractères.

ANSI séquences ont été introduits dans les années 1970 pour remplacer le fournisseur séquences spécifiques et s'est généralisée dans le matériel informatique du marché au début des années 1980. Ils ont été utilisés par les nouveaux systèmes d'affichage électronique d'offrir une meilleure affiche par rapport aux systèmes antérieurs manque de mouvement de curseur, une des principales raisons pour lesquelles ils sont devenus un standard adopté par tous les fabricants.

Bien que le matériel de texte, terminaux sont devenus de plus en plus rare dans le 21e siècle, la pertinence de la norme ANSI persiste parce que la plupart des émulateurs de terminal interpréter certains au moins des séquences d'échappement ANSI dans le texte de sortie. Une exception notable a été le Win32 console de Microsoft Windows avant Windows 10 mise à jour TH2.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

L'histoire[modifier | modifier le code]

Presque tous les fabricants de terminaux vidéo ajoutée spécifique au fournisseur des séquences d'échappement pour effectuer des opérations telles que de placer le curseur au arbitraire positions sur l'écran. Un exemple est la VT52 terminal, ce qui a permis le curseur est placé à une localisation x,y sur l'écran par l'envoi de l' ESC de caractère, un y de caractère, et puis de deux caractères représentant avec des valeurs numériques égale à la localisation x,y, plus 32 (commençant ainsi à l'espace ASCII du caractère et en évitant les caractères de contrôle).

Comme ces séquences étaient différentes pour les différents terminaux, d'élaborer des bibliothèques comme termcap et des utilitaires tels que tput a dû être créé afin que les programmes peuvent utiliser la même API pour travailler avec n'importe quel terminal. En outre, beaucoup de ces terminaux nécessaire l'envoi de nombres (ligne et colonne) que les valeurs binaires des personnages; pour certains langages de programmation, et pour les systèmes qui n'utilisent pas de l'ASCII à l'interne, il est souvent difficile ou impossible de transformer un nombre dans le caractère correct.

La norme ANSI a tenté de résoudre ces problèmes en faisant un jeu de commande de tous les terminaux serait d'utiliser et d'exiger que les informations numériques pour être transmis sous la forme ASCII des chiffres. Le premier standard de la série a été ECMA-48, adoptée en 1976. C'est une continuation d'une série de normes de codage des caractères, le premier étant ECMA-6 à partir de 1965, à 7 bits standard à partir de laquelle la norme ISO 646 provient. Le nom de "ANSI séquence d'échappement" date de 1979 lors de l'ANSI a adopté la norme ANSI X3.64. L'ANSI X3L2 comité a collaboré avec l'ECMA comité TC 1 pour produire à peu près identique normes. Ces deux normes ont été fusionnées en une norme internationale, ISO 6429.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. En 1994, la norme ANSI a retiré sa norme en faveur de la norme internationale.

La première vidéo populaires terminal à l'appui de ces séquences a été le Numérique VT100, mis en place en 1978.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. Ce modèle a été très réussie dans le marché, qui a déclenché une variété de VT100 clones, parmi les plus anciens et les plus populaires, qui était beaucoup plus abordable Zenith Z-19 en 1979.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. d'Autres inclus le Qume QVT-108, télé vidéo en réel TVI-970, Wyse WY-99GT ainsi que l'option "VT100" ou "VT103" ou "ANSI" modes avec divers degrés de compatibilité sur de nombreuses autres marques. La popularité de ces aboutissent à des logiciels de plus en plus (surtout bulletin board systems) en supposant que les séquences d'échappement travaillé, conduisant à presque toutes les nouvelles bornes et émulateur de programmes de soutien.

En 1981, la norme ANSI X3.64 a été adopté par le gouvernement AMÉRICAIN par FIPS publication 86. Plus tard, le gouvernement AMÉRICAIN a cessé de dupliquer les normes de l'industrie, de sorte FIPS pub. 86 a été retiré.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

ECMA-48 a été mis à jour à plusieurs reprises et est actuellement à sa 5e édition, à partir de 1991. Il est également adopté par l'ISO et de la CEI en tant que norme ISO/IEC 6429.

Support de plate-forme[modifier | modifier le code]

L'utilisation généralisée de la norme ANSI par les babillards et les services en ligne ont permis à près de universal support de plate-forme au milieu des années 1980. Dans la plupart des cas, cela a pris la forme d'un émulateur de terminal (tel que xterm sur Unix ou l' OS du Terminal X ou ZTerm sur MacOS et de nombreux programmes de communication pour l'IBM PC), mais il y a une augmentation du soutien dans le texte standard de la sortie de nombreux systèmes d'exploitation.

Unix et l'AmigaOS tout compris certains ANSI dans l'OS, ce qui a conduit à l'utilisation généralisée de la norme ANSI par les programmes fonctionnant sur ces plates-formes. Unix-comme les systèmes d'exploitation pourrait produire ANSI codes à travers les bibliothèques, comme termcap et malédictions utilisé par de nombreux morceaux de logiciel pour mettre à jour l'affichage. Ces bibliothèques sont censés support non ANSI bornes, mais c'est très rarement testé aujourd'hui qu'ils sont peu de chances de fonctionner.[réf. nécessaire] De nombreux jeux et des scripts shell (comme la couleur des invites) écrire directement des séquences ANSI et ne peut donc pas être utilisé sur un terminal qui n'a pas les interpréter.

AmigaOS non seulement interprète ANSI séquences de code pour la sortie de texte à l'écran, l'AmigaOS imprimante pilote aussi les interprète (avec des extensions propriétaires pour AmigaOS) et les traduit dans les codes requis pour l'imprimante qui est réellement attaché.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

En dépit de sa popularité, ANSI codes ne sont pas systématiquement pris en charge. Le soutien n'a pas été intégré à l'original "classique" de Mac OS, tandis que l'Atari ST a utilisé le système de commande adapté de la VT52 avec quelques extensions pour la couleur.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

Windows et de DOS[modifier | modifier le code]

MS-DOS 1.x n'a pas de soutien de l'ANSI et de toutes les autres séquences d'échappement. Seulement quelques-uns des caractères de contrôle (BEL, CR, LF, BS) ont été interprétés par le BIOS, il est presqueErreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. impossible pour n'importe quel type d'application en plein écran. Tout les effets d'affichage devait être fait avec des appels BIOS, qui ont été notoirement lent, ou en manipulant directement les IBM PC.

DOS 2.0 a introduit la possibilité d'ajouter un pilote de périphérique pour les séquences d'échappement ANSI – le de facto de la norme ANSI.SYS, mais d'autres comme la norme ANSI.COM,Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. NANSI.SYSErreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. et ANSIPLUS.EXE sont utilisées (elles sont beaucoup plus rapides car ils contourner le BIOS). La lenteur et le fait qu'il n'était pas installé par défaut des logiciels rarement prendre avantage de celui-ci; au lieu de cela, les applications ont continué à manipuler directement le matériel pour obtenir de l'affichage de texte nécessaire.[réf. nécessaire] ANSI.SYS et éléments similaires continué à travailler sous Windows 9x jusqu'à Windows Me, et dans le NT systèmes dérivés de 16 bits programmes hérités de l'exécution en vertu de la NTVDM.

La console Win32 n'a pas le soutien des séquences d'échappement ANSI. Certains remplacements ou des ajouts pour la fenêtre de la console comme JP Logiciel du CCI (anciennement 4NT), Michael J. Mefford de l'ANSI.COM, Jason Capot de la ANSICONErreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. et Maximus5 de ConEmu interpréter des séquences d'échappement ANSI imprimé par les programmes. Un paquet PythonErreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. à l'interne interpréter des séquences d'échappement ANSI dans le texte imprimé, de les traduire pour les appels à manipuler la couleur et la position du curseur, pour le rendre plus facile pour port code Python à l'aide de la norme ANSI pour Windows.

En 2016 avec Windows 10 "Seuil 2"Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. Microsoft de façon inattendue a commencé à soutenir des séquences d'échappement ANSI dans l'application de console, faire le portage de logiciels de la (ou accès à distance) Unix beaucoup plus facile.

Les séquences d'échappement[modifier | modifier le code]

Les séquences sont de différentes longueurs. Toutes les séquences de démarrage avec le caractère ASCII ESC (27 / hex 0x1B), suivi par un deuxième octet dans la gamme 0x40–0x5F (ASCII @A–Z[\]^_).:5.3.a

La norme dit qu'en 8 bits environnements ces deux séquences d'octets peuvent être fusionnés dans un seul octet dans le 0x80–0x9F gamme (pour les détails, voir C1 codes de contrôle).:5.4.a Toutefois, sur les appareils modernes, ces codes sont souvent utilisés à d'autres fins, telles que les parties de l'UTF-8, ou pour les CP-1252 caractères, si seulement l'2-séquence d'octets est utilisé.

D'autres C0 codes en plus ESC — communément BEL, BS, CR, LF, FF, ONGLET, VT, DONC, et SI — peut produire similaires ou identiques effets de certaines séquences de contrôle lors de la sortie.

Certaines séquences d'échappement ANSI (liste non exhaustive)
Séquence C1 Nom Effet
ESC N 0x8e SS2 – Seul quart de travail à Deux Sélectionner un caractère unique à partir de l'une des autres jeux de caractères. Dans un xterm, SS2 sélectionne le jeu de caractères G2, et SS3 sélectionne le G3 jeu de caractères.
ESC O 0x8f SS3 – Seul quart de travail de Trois
ESC P 0x90 DCS – Dispositif de Contrôle de la Chaîne Contrôle un périphérique. Dans un xterm, les utilisations de cette séquence comprennent la définition de Touches User defined, et de demander ou de réglage de Termcap/Terminfo de données.
ESC [ 0x9b CSI - Contrôle de la Séquence d'Introduction La plupart des séquences, voir la section suivante. Se termine à l'ASCII 64 à 126 (@ à ~ / hex 0x40 à 0x7E).
ESC \ 0x9c ST – Terminateur de Chaîne Termine chaînes dans d'autres contrôles (y compris APC, DCS, de la CVMO, PM, et SOS).[1]:8.3.143
ESC ] 0x9d OSC – Commande du Système d'Exploitation Commence une chaîne de contrôle pour le système d'exploitation à utiliser. La CVMO séquences sont similaires à CSI séquences, mais ne sont pas limités à des arguments entiers. En général, ces séquences de contrôle sont terminées par le SAINT.:8.3.89 Dans un xterm, ils peuvent également être résilié par BEL. Par exemple, dans un xterm, le titre de la fenêtre peut être définie par la CVMO 0;c'est le titre de la fenêtre BEL.
ESC X 0x98 SOS – Début de la Chaîne Prend un argument d'une chaîne de caractères, terminée par le SAINT. Les utilisations de ces chaîne de séquences de contrôle sont définies par l'application:8.3.2,8.3.128 ou de la vie privée de la discipline.:8.3.94 Ces fonctions ne sont pas mises en œuvre et les arguments sont ignorés par xterm.
ESC ^ 0x9e PM – Message de Confidentialité
ESC _ 0x9f APC – Application Program Command
ESC c RIS de Réinitialisation à l'État Initial Réinitialise l'appareil à son état d'origine. Cela peut inclure (si applicable): rétablir le graphique rendu clair de la totalisation s'arrête, réinitialiser les paramètres par défaut de la police, et plus encore.

En appuyant sur les touches spéciales du clavier, ainsi que la sortie de nombreux xterm CSI, DCS, ou de la CVMO séquences, produit souvent un CSI, DCS, ou de la CVMO séquence, envoyé par le terminal à l'ordinateur, comme si l'utilisateur a tapé.

CSI séquences[modifier | modifier le code]

L' ESC [ est suivi d'un nombre quelconque (y compris aucune) de paramètre "octets" dans la gamme 0x30–0x3F (ASCII de 0 à 9:;<=>?), puis, par un certain nombre de "intermédiaire octets" dans la gamme 0x20–0x2F (ASCII de l'espace et de !"#$%&'()*+,-./), puis, enfin, par un seul octet final" dans la gamme 0x40–0x7E (ASCII @A–Z[\]^_`a–z{|}~).:5.4

Toutes les séquences d'usage courant juste utiliser les paramètres d'une série de point-virgule, séparés des chiffres (par exemple 1;2;3). Numéros manquants sont traitées comme 0 (par exemple 1;;3 actes comme le nombre moyen est de 0, et aucun paramètre n'en ESC[m agit comme un 0 code de réinitialisation). Certaines séquences (comme CUU) traiter de 0 que de 1, afin de rendre les paramètres manquants utile.:F.4.2 Intermédiaire octets semblent pas être utilisé.[réf. nécessaire]

Un sous-ensemble de dispositions a été déclarée "privé" afin que les fabricants de terminaux pourrait insérer leurs propres séquences sans entrer en conflit avec la norme. Cela inclut également l'utilisation du paramètre octets <=>? ou de la finale octets 0 x 70–0x7F (p–z{|}~). Un exemple populaire d'un privé est le code de séquences CSI?25h et de la CSI?25l pour la VT320 pour activer le curseur on/off.

Le comportement du terminal n'est pas défini dans le cas où un CSI séquence contient tous les caractères en dehors de la plage 0x20–0x7E. Ces caractères illégaux sont soit C0 caractères de contrôle (la plage de 0–0x1F), DEL (0x7F), ou d'octets avec le haut-ensemble de bits. Les réponses possibles sont à ignorer l'octet, de les traiter immédiatement, et en outre la question de continuer avec l'équipe des experts de la séquence, de l'abandonner immédiatement, ou à ignorer le reste.[réf. nécessaire]

Some ANSI control sequences (not a complete list)
Code Name Effect

CSI n A CUU – Cursor Up Moves the cursor (default 1) cells in the given direction. If the cursor is already at the edge of the screen, this has no effect.

CSI n B CUD – Cursor Down

CSI n C CUF – Cursor Forward

CSI n D CUB – Cursor Back
CSI n E CNL – Cursor Next Line Moves cursor to beginning of the line (default 1) lines down. (not ANSI.SYS)
CSI n F CPL – Cursor Previous Line Moves cursor to beginning of the line (default 1) lines up. (not ANSI.SYS)
CSI n G CHA – Cursor Horizontal Absolute Moves the cursor to column (default 1). (not ANSI.SYS)

CSI n ; m H CUP – Cursor Position Moves the cursor to row , column . The values are 1-based, and default to 1 (top left corner) if omitted. A sequence such as CSI ;5H is a synonym for CSI 1;5H as well as CSI 17;H is the same as CSI 17H and CSI 17;1H

CSI n J ED – Erase in Display Clears part of the screen. If is 0 (or missing), clear from cursor to end of screen. If is 1, clear from cursor to beginning of the screen. If is 2, clear entire screen (and moves cursor to upper left on DOS ANSI.SYS). If is 3, clear entire screen and delete all lines saved in the scrollback buffer (this feature was added for xterm and is supported by other terminal applications).

CSI n K EL – Erase in Line Erases part of the line. If is zero (or missing), clear from cursor to the end of the line. If is one, clear from cursor to beginning of the line. If is two, clear entire line. Cursor position does not change.

CSI n S SU – Scroll Up Scroll whole page up by (default 1) lines. New lines are added at the bottom. (not ANSI.SYS)

CSI n T SD – Scroll Down Scroll whole page down by (default 1) lines. New lines are added at the top. (not ANSI.SYS)

CSI n ; m f HVP – Horizontal Vertical Position Same as CUP

CSI n m SGR – Select Graphic Rendition Sets SGR parameters, including text color. After CSI can be zero or more parameters separated with semicolon. If none, CSI m is treated as CSI 0 m (reset / normal).

CSI 5i AUX Port On Enable aux serial port usually for local serial printer

CSI 4i AUX Port Off Disable aux serial port usually for local serial printer

CSI 6n DSR – Device Status Report Reports the cursor position (CPR) to the application as (as though typed at the keyboard) ESC[n;mR, where is the row and is the column.)

CSI s SCP – Save Cursor Position Saves the cursor position.

CSI u RCP – Restore Cursor Position Restores the cursor position.

SGR (Sélectionnez Graphique Interprétation) paramètres[modifier | modifier le code]

Code Effet Note
0 Reset / Normal tous les attributs off
1 Le gras ou l'augmentation de l'intensité
2 Faible (diminution de l'intensité) Pas largement soutenue.
3 Italique Pas largement soutenue. Parfois traités comme inverse.
4 Souligner
5 Clignotement Lent moins de 150 par minute
6 Rapide Clignotement MS-DOS ANSI.SYS; 150 par minute; pas largement pris en charge
7 vidéo inverse swap de premier plan et les couleurs de fond
8 Cacher Pas largement soutenue.
9 Barrée Caractères lisibles, mais marqué pour suppression. Pas largement soutenue.
10 Primaire(par défaut) de la police
11-19 La variante de police Sélectionnez la variante de police
20 Fraktur presque jamais pris en charge
21 Gras off ou Double Soulignement Gras de ne pas largement soutenue; soulignement double pratiquement jamais pris en charge.
22 Normal, la couleur ou l'intensité Ni gras, ni faible
23 Non italique, non Fraktur
24 Pas de soulignement. Pas isolément ou doublement souligné
25 Clignement
27 Inverse off
28 Révéler dissimuler off
29 Pas barré
30-37 Couleur de premier plan Voir table des couleurs ci-dessous
38 Couleur de premier plan Suivant les arguments sont 5;n ou 2;r;g;b, voir ci-dessous
39 Par défaut la couleur de premier plan la mise en œuvre définies (selon la norme)
40-47 Définir la couleur de fond Voir table des couleurs ci-dessous
48 Définir la couleur de fond Suivant les arguments sont 5;n ou 2;r;g;b, voir ci-dessous
49 Couleur de fond par défaut la mise en œuvre définies (selon la norme)
51 Encadré
52 Encerclé
53 Overlined
54 Non encadré ni encerclé
55 Pas overlined
60 idéogramme souligner ou à droite de la ligne presque jamais pris en charge
61 idéogramme double soulignement ou

double ligne sur le côté droit

62 idéogramme surligner ou à gauche de la ligne
63 idéogramme double surligner ou

double ligne sur le côté gauche

64 idéogramme de stress marquage
65 idéogramme attributs off réinitialiser les effets de toutes les 6064
90-97 Ensemble lumineux couleur de premier plan aixterm (pas dans la norme)
100–107 Ensemble lumineux couleur d'arrière-plan aixterm (pas dans la norme)

Les couleurs[modifier | modifier le code]

3/4 bits[modifier | modifier le code]

La spécification d'origine avait seulement 8 couleurs, et leur donne des noms. Le SGR paramètres 30-37 sélectionné la couleur de premier plan, tandis que 40-47 sélectionné à l'arrière-plan. Tout à fait un peu de terminaux mis en œuvre "gras" (SGR code 1) comme l'un des plus lumineux de couleur plutôt qu'une police de caractères différente, et donc de fournir des 8 autres couleurs de premier plan. Habituellement, vous ne pourriez pas obtenir ces couleurs d'arrière-plan, même s'il est parfois inverse vidéo (SGR code 7) permettrait à la. Exemples: pour obtenir des lettres noires sur fond blanc utilisation ESC[30;47m, pour obtenir d'utilisation rouge ESC[31m, pour obtenir le rouge vif utilisation ESC[1;31m. Pour réinitialiser les couleurs à leurs valeurs par défaut, utilisez la touche ECHAP[39;49m (non pris en charge sur certains terminaux), ou de réinitialiser tous les attributs avec ESC[0m. Plus tard, les terminaux ajout de la possibilité de spécifier directement le "brillant" de couleurs avec 90-97 et 100-107.

Lorsque le matériel a commencé à l'aide de 8 bits Dac plusieurs morceaux de logiciels affecté couleur 24-bit nombre de ces noms. Le graphique ci-dessous montre les valeurs envoyées à la DAC de certains matériels et logiciels.[réf. nécessaire]

Name FG Code BG Code VGA[nb 1] CMD[nb 2] Terminal.app PuTTY mIRC xterm X[nb 3] Ubuntu[nb 4]
Black 30 40 0,0,0 1,1,1
Red 31 41 170,0,0 128,0,0 194,54,33 187,0,0 127,0,0 205,0,0 255,0,0 222,56,43
Green 32 42 0,170,0 0,128,0 37,188,36 0,187,0 0,147,0 0,205,0 0,255,0 57,181,74
Yellow 33 43 170,85,0[nb 5] 128,128,0 173,173,39 187,187,0 252,127,0 205,205,0 255,255,0 255,199,6
Blue 34 44 0,0,170 0,0,128 73,46,225 0,0,187 0,0,127 0,0,238[2] 0,0,255 0,111,184
Magenta 35 45 170,0,170 128,0,128 211,56,211 187,0,187 156,0,156 205,0,205 255,0,255 118,38,113
Cyan 36 46 0,170,170 0,128,128 51,187,200 0,187,187 0,147,147 0,205,205 0,255,255 44,181,233
White 37 47 170,170,170 192,192,192 203,204,205 187,187,187 210,210,210 229,229,229 255,255,255 204,204,204
Bright Black 1;30 100 85,85,85 128,128,128 129,131,131 85,85,85 127,127,127 127,127,127 128,128,128
Bright Red 1;31 101 255,85,85 255,0,0 252,57,31 255,85,85 255,0,0 255,0,0 255,0,0
Bright Green 1;32 102 85,255,85 0,255,0 49,231,34 85,255,85 0,252,0 0,255,0 144,238,144 0,255,0
Bright Yellow 1;33 103 255,255,85 255,255,0 234,236,35 255,255,85 255,255,0 255,255,0 255,255,224 255,255,0
Bright Blue 1;34 104 85,85,255 0,0,255 88,51,255 85,85,255 0,0,252 92,92,255[3] 173,216,230 0,0,255
Bright Magenta 1;35 105 255,85,255 255,0,255 249,53,248 255,85,255 255,0,255 255,0,255 255,0,255
Bright Cyan 1;36 106 85,255,255 0,255,255 20,240,240 85,255,255 0,255,255 0,255,255 224,255,255 0,255,255
Bright White 1;37 107 255,255,255 255,255,255 233,235,235 255,255,255 255,255,255 255,255,255 255,255,255

8-bit[modifier | modifier le code]

Que 256 couleurs des tables de recherche est devenu commun sur les cartes graphiques, les séquences d'échappement ont été ajoutés pour sélectionner à partir un ensemble pré-défini de 256 couleurs:[réf. nécessaire]

 ESC[ ... 38;5;<n> m ... Sélectionner la couleur de premier plan
 ESC[ ... 48;5;<n> ... m Sélectionnez la couleur d'arrière-plan
 0x00-0x07: couleurs standard (comme dans ESC [ 30-37 m)
 0x08-0x0F: haute intensité des couleurs (comme dans ESC [ 90-97 m)
 0x10-0xE7: 6 × 6 × 6 cube (216 couleurs): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
 0xE8-0xFF: niveaux de gris, du noir au blanc en 24 étapes
256-color mode — foreground: ESC[38;5;#m   background: ESC[48;5;#m
Standard colors High-intensity colors
 0   1   2   3   4   5   6   7   8   9  10 11 12 13 14 15
216 colors
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
Grayscale colors
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

24-bit[modifier | modifier le code]

"Couleurs vraies" cartes graphiques avec 16 à 24 bits de couleur est devenu commun, Xterm,[4] de KDE, Konsole,[5] ainsi que tous les libvte terminaux[6] (y compris le Terminal de GNOME) le soutien de l'ISO-8613-3 24-peu de premier plan et d'arrière-plan de couleur réglage de laModèle:Better source[7]

 ESC[ ... 38;2;<r>;< / g>;<b> ... m Sélectionnez RGB comme couleur de premier plan
 ESC[ ... 48;2;<r>;< / g>;<b> ... m Sélectionnez RVB couleur d'arrière-plan

L'UIT's T. 416 technologies de l'Information - Document Ouvert de l'Architecture (ODA) et format d'échange de Caractère: le contenu des architecturesErreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom. qui a été adopté comme norme ISO/IEC International Standard 8613-6 donne une autre version qui semble être moins pris en charge:

 ESC[ ... 38:2:<r>:<g>:<b>:<inutilisée>:<CS tolérance>:<Espace de Couleurs: 0="CIELUV"; 1="CIELAB">m Sélectionnez RGB comme couleur de premier plan
 ESC[ ... 48:2:<r>:<g>:<b>:<inutilisée>:<CS tolérance>:<Espace de Couleurs: 0="CIELUV"; 1="CIELAB">m Sélectionnez RVB couleur d'arrière-plan

Notez que cette fonction utilise la autrement réservés caractère ':' pour séparer les sous-options, ce qui peut avoir été une source de confusion pour le monde réel. Il a également des documents à l'aide de '3' en tant que second paramètre pour spécifier les couleurs à l'aide d'un Cyan-Magenta-Jaune régime et '4' pour un Cyan-Magenta-Jaune-Noir, le second à partir de la position marquée comme "non utilisé" dans les exemples ci-dessus pour le composant Noir.

Xterm permet également la mise en couleurs par X11 noms de couleur à l'aide deErreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

ESC]10;<premier plan>BEL
 ESC]11;<contexte>BEL

<premier plan> et <contexte> sont de type texte, et BEL est de l'ASCII BEL caractère (code 7). Le crochet de fermeture au lieu d'un crochet ouvrant révèle qu'il appartient à l'exploitation du système de commandes de contrôle.

Exemples[modifier | modifier le code]

CSI 2 J — Cela efface l'écran et, sur certains appareils, positionne le curseur de l'axe,la position x 1,1 (coin supérieur gauche).

CSI 32 m — Ce qui rend le texte en vert. Sur MS-DOS, normalement, le vert serait sombre, d'un vert terne, de sorte que vous souhaiterez peut-être activer en Gras avec la séquence CSI 1 m ce qui en ferait un vert lumineux, ou combinées comme CSI 32 ; 1 m. MS-DOS ANSI.SYS utilise le Gras de l'état à rendre le personnage Lumineux, il est aussi le Clin d'oeil de l'état peut être défini (via INT 10, AX 1003h, BL 00h) pour rendre l'arrière-plan dans le mode Lumineux. MS-DOS ANSI.SYS ne prend pas en charge SGR codes 90-97 et 100-107 directement.

CSI 0 ; 6 8 ; "DIR" ; 13 p — Cela affecte la touche F10 pour envoyer à la mémoire tampon du clavier de la chaîne "DIR" et l'ENTRÉE dans le DOS en ligne de commande affiche le contenu du répertoire en cours. (MS-DOS ANSI.SYS seulement) il a parfois été utilisé pour ANSI bombes. C'est une private code d'utilisation (comme indiqué par la lettre p), à l'aide d'un non-extension standard pour inclure une chaîne de valeur de paramètre. À la suite de la lettre de la norme serait de tenir compte de la séquence à la fin de la lettre D.

CSI s — sauvegarde de la position du curseur. À l'aide de la séquence de CSI u restaurer à la position. Dire la position actuelle du curseur est de 7(a) et 10(x). La séquence CSI s va enregistrer ces deux nombres. Maintenant, vous pouvez vous déplacer vers une autre position du curseur, comme 20(y) et 3(x), en utilisant la séquence CSI 20 ; 3 H ou CSI 20 ; 3 f. Maintenant, si vous utilisez la séquence de CSI u la position du curseur sera de retour à 7(a) et 10(x). Certains terminaux nécessitent l'DÉC séquences ESC 7 / ESC 8 à la place qui est plus largement pris en charge.

Exemple d'utilisation dans des scripts shell[modifier | modifier le code]

D'échappement ANSI codes sont souvent utilisés dans UNIX et UNIX-like bornes pour fournir de la syntaxe. Par exemple, sur les terminaux compatibles, le suivant de la liste de commande des couleurs-codes des noms de fichier et répertoire par type.

Les utilisateurs peuvent utiliser des codes d'échappement dans leurs scripts en les incluant dans le cadre de la sortie standard ou d'erreur standard. Par exemple, la licence GNU sed commande embellit la sortie de la faire commande en affichant des lignes contenant des mots commençant par "AVERTIR" en vidéo inverse et les mots commençant par "ERR" en jaune vif sur un fond rouge foncé (casse est ignorée). Les représentations de l'codes sont mis en évidence.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

faire 2>&1 | sed -e 's/.*\avertisse.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bERR.*/\x1b[93;41 m&\x1b[0m/i'

La suite de Bash fonction clignote le terminal (alternativement par l'envoi d'inverser et de vidéo normale des codes de mode) jusqu'à ce que l'utilisateur appuie sur une touche.Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

flasher () { while true; do printf \\e[?5h; le sommeil 0.1; printf \\e[?5l; lu -s -n1 -t1 && break; fait; }

Ceci peut être utilisé pour alerter un programmeur une longue commande se termine, comme à faire ; flasher .Erreur de référence : La balise ouvrante <ref> est mal formée ou a un mauvais nom.

printf \\033c

Ceci permet de réinitialiser la console, similaire à la commande de réinitialisation sur les systèmes Linux modernes; cependant, il doit travailler, même sur les vieux systèmes Linux et sur d'autres (non-Linux) variantes d'UNIX.

Non valide et ambiguë séquences en cours d'utilisation[modifier | modifier le code]

  • La console de Linux utilise la CVMO P n rr, gg et bb pour modifier la palette, qui, si codée en dur dans une application, peut accrocher sur d'autres terminaux. Cependant, avec l'ajout de ST sera ignoré par Linux et former un bon, ignorable séquence pour les autres terminaux.[réf. nécessaire]
  • Sur la console Linux, certaines touches de fonction de générer des séquences de la forme CSI [ char. La CSI séquence devrait mettre fin à la [.
  • Les anciennes versions de Terminator générer SS3 1; modificateurs de char lors de la F1–F4 sont pressées avec des modificateurs. Le mauvais comportement a été copié à partir d'un Terminal GNOME.[réf. nécessaire]
  • xterm réponses CSI ligne ; colonne de R en cas de demande de position du curseur et la CSI 1 ; modificateurs de R si la touche F3 est pressé avec des modificateurs, qui entrent en collision dans le cas de la ligne == 1. Ceci peut être évité en utilisant l' ? privé modificateur, qui sera reflété dans la réponse.[pas clair]
  • de nombreuses bornes de la faire précéder de l'ESC le caractère de ce qui est tapé avec la touche alt enfoncée. Cela crée de l'ambiguïté pour les lettres majuscules et les symboles @[\]^_, qui forme C1 codes.[pas clair]
  • Konsole génère SS3 modificateurs de char lors de la F1–F4 sont pressées avec des modificateurs.[pas clair]

Voir aussi[modifier | modifier le code]

Notes[modifier | modifier le code]

  1. Typical colors that are used when booting PCs and leaving them in text mode, which used a 16-entry color table. The colors are different in the EGA/VGA graphic modes.
  2. As of Windows XP
  3. Above color name from X11 rgb.txt color database, with "light" prefixed for the bright colors.
  4. For virtual terminals, from /etc/vtrgb.
  5. On terminals based on CGA compatible hardware, such as ANSI.SYS running on DOS, this normal intensity foreground color is rendered as Orange. CGA RGBI monitors contained hardware to modify the dark yellow color to an orange/brown color by reducing the green component. See this ansi art as an example.

Références[modifier | modifier le code]

  1. « Standard ECMA-48: Control Functions for Coded Character Sets »,
  2. Changed from 0,0,205 in July 2004 « Patch #192 – 2004/7/12 – XFree86 4.4.99.9 »
  3. Changed from 0,0,255 in July 2004 « Patch #192 – 2004/7/12 – XFree86 4.4.99.9 »
  4. « XTerm Control Sequences », invisible-island.net, (consulté le )
  5. « color-spaces.pl (a copy of 256colors2.pl from xterm dated 1999-07-11) », KDE,
  6. « libvte's bug report and patches », GNOME Bugzilla, (consulté le )
  7. « README.moreColors », KDE,

Liens externes[modifier | modifier le code]

[[Catégorie:Norme ou standard informatique]] [[Catégorie:Norme ECMA]]